package com.my.screenadapter.usb;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;

import com.my.screenadapter.Base.BaseActivity;
import com.my.screenadapter.R;

import java.util.List;

/**
 * UsbAccessory和UsbDevice的区别
 * <p>
 * UsbDevice：正常的，USB的Host和USB的Device架构中的USB的Device
 * 所以，此时：Android设备是USB的Host，外接的USB设备是USB的Device
 * 此时，Android设备作为USB的Host，要做USB Host该干的事情：
 * 给USB外接设备供电
 * 负责管理USB总线
 * <p>
 * UsbAccessory：和标准的USB的概念相反
 * USB设备是USB的Host
 * 所以，此时USB设备，也要干其作为USB的Host的事情
 * USB设备，要给作为USB的Device的Android设备供电
 * USB设备要负责管理USB总线
 * 而Android设备是USB的Device
 * 此时，从概念上说，相当于把Android设备，当做Accessory附件，挂在USB设备上
 */
public class UsbActivity extends BaseActivity {

    @Override
    protected void init() {

    }

    @Override
    protected int initLayoutId() {
        return R.layout.activity_usb;
    }

    boolean isConnect = true;

    public void connectUsb(View view) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                while (isConnect) {
                    Log.i(TAG, "run: connect start");
                    List<String> strings = UsbUtil.GetUsbPathNames(UsbActivity.this);// 应用加入 白名还有，系统应用没有提示窗了

                    for (int i = 0; strings != null && i < strings.size(); i++) {
                        Log.i(TAG, "run: usb address " + strings.get(i));
                    }

                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }

            }
        }).start();

    }

    public void disconnectUsb(View view) {
        isConnect = false;
    }
}
